package com.date;

import org.junit.Test;

import java.text.SimpleDateFormat;
import java.util.Calendar;


public class DateTest {
    @Test
    public void testDate(){
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
        //获取当前日期
        Calendar calendar = Calendar.getInstance();
        System.out.println(simpleDateFormat.format(calendar.getTime()));
        //Calendar赋值 注意月份是0-11
        calendar.set(2013, 0, 15, 17, 35, 44);
        System.out.println(simpleDateFormat.format(calendar.getTime()));
        //获取年
        int year = calendar.get(Calendar.YEAR);
        //获取月
        int month = calendar.get(Calendar.MONTH);
        //获取日期
        int date = calendar.get(Calendar.DATE );
        System.out.println(year);
        //月份需要+1
        System.out.println(month+1);
        System.out.println(date);
        rollTime(simpleDateFormat, calendar);
        addTime(simpleDateFormat, calendar);
    }
    /*
     * add方法会产生其他相关时间属性的连动变化
     * 2013-1-15 add(Calendar.MONTH, -2) 后是2012-12-15
     */
    private void addTime(SimpleDateFormat simpleDateFormat, Calendar calendar) {
        calendar.add(Calendar.MONTH,-1);
        System.out.println(simpleDateFormat.format(calendar.getTime()));
    }
    /*
     * roll方法只是对相应时间属性的域内做变化
     * 例如,对月份使用roll方法，它会在1-12的范围内变化，不会影响的年
     * 2013-1-15 roll(Calendar.MONTH, -1) 后是2013-12-15
     */
    private void rollTime(SimpleDateFormat simpleDateFormat, Calendar calendar) {
        calendar.roll(Calendar.MONTH,-1);
        System.out.println(simpleDateFormat.format(calendar.getTime()));
    }

}
